Computer systems are well known in the art and have attained widespread use for providing computer power to many segments of today's modem society. Computer systems such as personal computers (PCs) and servers may typically include a system unit having a central processing unit (CPU) and associated volatile and non-volatile memory, including random access memory (RAM) and basic input/output system read only memory (BIOS ROM), a system monitor, a CD-ROM or DVD-ROM drive, a fixed disk storage drive (also known as a “hard drive”), user input devices, and a network interface adapter. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. Computers systems typically include software such as computer programs in addition to the hardware. As advances in semiconductor processing and computer architecture continue to push the performance of computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems that continue to increase in complexity and power.
Computer systems have thus evolved into extremely sophisticated devices that may be found in many different settings. One problem with computer systems today is balancing the cost of the computer hardware with fluctuating demands on computer resources. In most networked computing systems, there are times when demands on computer resources are relatively high and other times when demands are relatively low. A computer system utilized by an e-commerce retailer may, for example, have greater need of computing resources during busing shopping seasons such as during the time leading up to Christmas or Mother's Day. Another problem facing computer administrators today is providing satisfactory access to an application to multiples users in an organization. In many cases, for example, an administrator must facilitate installation of an application on the computer system of each user as well as maintaining and updating the applications, which can be a labor-intensive process, particularly for large organizations with many users.
One solution to these problems is provide for on demand applications that a user may access via a network only when needed, ensuring usage of the latest version of the application and providing the opportunity to charge users only for their specific usage. This model has proven popular as customers are charged only for their usage and need not overpay during times of minimal need. Accurate billing for usage is desired by both the application provider and its customers so that the customer is charged for their precise usage. Billing for on demand application usage is often based on a transaction billing system that charges for each usage of an application, the time of usage, or other metric, but such a billing system does not provide a pure representation of application usage of information technology (IT) resources such as the CPU or memory and is thus less desirable. Billing for on demand application may also be accomplished by measurement of usage of different, specific computer resources (such as processor cycles, memory usage, etc.) to provide a more accurate billing. Resource usage billing methodologies, however, often fail when applications are hosted on distributed platforms or in a shared or multi-application environment. Hosting of applications on multiple computer platforms or resources makes it difficult to track application usage, resulting in inefficient manual corrections by administrators. Similarly, a resource may be utilized by multiple users and/or applications simultaneously, providing additional difficulties in efficiently and effectively tracking application usage.